// 封装axios
import axios from 'axios'
import Vue from 'vue'
import { getToken,removeToken,removeUserId } from './localData'
// // 配置路由
axios.defaults.baseURL = 'http://127.0.0.1:3000'
// Vue.prototype.$baseURL = axios.defaults.baseURL = 'http://157.122.54.189:9083'

// 请求拦截器
// axios 发送请求前自执行的一个函数
axios.interceptors.request.use(
  // config 就是请求时的配置
  (config) => {
    // 获取本地存储的 token
    const token = getToken()
    // 如果有token 就提添加到请求头中
    if(token){
      config.headers.Authorization = token
    }
    // 返回修改后的配置
    return config
  },
  (error) => {
    // 请求错误做些什么，表示失败把error 传递给 catch（）
    return Promise.reject(error)
  }
)

// 添加响应拦截器
axios.interceptors.response.use(
  (response) => {
    // console.log('服务器响应数据后，axios 会自动调用的函数', response)
    if (response.data.message === '用户信息验证失败') {
      // 失败的原因可能是未登录，或者登录过期了。
      // 1. 删除已过期的用户信息
      removeToken()
      removeUserId()
    }
    // 返回的数据
    return response
  },
  (error) => Promise.reject(error),
)

// 暴露出去
export default axios